package com.itlong.cloud.sdk.service;

import com.itlong.cloud.POJO.DTO.sdk.CloudElevatorSDKGetByDeviceUniqueDTO;
import com.itlong.cloud.POJO.DTO.sdk.CloudElevatorSDKServerGetElevatorPageDTO;
import com.itlong.cloud.POJO.VO.sdk.CloudEntranceSDKEntranceInfoVO;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      云门禁SDK设备服务接口
 * <desc/>
 *
 * @createDate 2019/03/14
 */
public interface ICloudEntranceSDKService {

    /**
     * <desc>
     *      查询项目下门禁设备唯一码列表
     * </desc>
     *
     * @param cloudElevatorSDKServerGetElevatorPageDTO
     * @return 云门禁SDK查询项目下设备唯一码列表VO
     * @author Qiang.S
     * @createDate 2019/03/14
     */
    List<String> getEntranceKey(CloudElevatorSDKServerGetElevatorPageDTO cloudElevatorSDKServerGetElevatorPageDTO) throws Exception;

    /**
     * <desc>
     *      根据设备唯一码查询门禁信息
     * </desc>
     *
     * @param cloudElevatorSDKGetByDeviceUniqueDTO
     * @return 根据设备唯一码查询门禁信息VO
     * @author Qiang.S
     * @createDate 2019/03/14
     */
    List<CloudEntranceSDKEntranceInfoVO> getEntranceInfo(CloudElevatorSDKGetByDeviceUniqueDTO cloudElevatorSDKGetByDeviceUniqueDTO) throws Exception;

    /**
     * <desc>
     *      获取开发者拥有的电梯门禁权限
     * </desc>
     *
     * @param userId 开发者id
     * @return 开发者拥有的设备权限
     * @Author Zhu.yj
     * @createDate  2020/9/8
     */
    Map<String, Object> getDeveloperAuth(String userId, String projectId) throws Exception;

}
